package com.portal.cwegportal.service;

import com.portal.cwegportal.mapper.FileMapper;
import com.portal.cwegportal.model.File;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;

import java.util.Date;
import java.util.List;

import static org.apache.http.util.TextUtils.isBlank;
/**
 *  创建人:王增立
 *  备注: 文件服务
 *  时间: 2019/4/26 14:54
 *  参数: 
 */
@Service
public class FileService {
    @Autowired
    FileMapper fileMapper;
    @Transactional
    /**
     *  创建人:王增立
     *  备注: 保存文件
     *  时间: 2019/4/26 14:56
     *  参数: 
     */
    public  List<File> saveFiles(List<File> files,String businessId,String businessType,String fileClass){
        if(files==null||files.size()==0){ return files;}
        fileMapper.deleteFile(businessType,businessId,fileClass);
        for (int i = 0; i < files.size(); i++) {
            File newFile= saveFile(files.get(i),businessId,businessType,fileClass);
            files.set(i,newFile);
        }
        return files;
    }
    @Transactional
    /**
     *  创建人:王增立
     *  备注: 保存多个文件
     *  时间: 2019/4/26 14:57
     *  参数: 
     */
    public  List<File> saveFiles(List<File> files,String businessId,String businessType){
        if(files==null||files.size()==0){ return files;}
        fileMapper.deleteFile(businessType,businessId,"");
        for (int i = 0; i < files.size(); i++) {
            File newFile= saveFile(files.get(i),businessId,businessType,null);
            files.set(i,newFile);
        }
        return files;
    }
    @Transactional
    /**
     *  创建人:王增立
     *  备注: 保存单个文件
     *  时间: 2019/4/26 14:58
     *  参数: 
     */
    public File saveFile(File file,String businessId,String businessType,String fileClass){
        if(file==null){return  file;}
//先删后插入
        File old= new File();//fileMapper.selectByPrimaryKey(file.getId());
        File result;
            file.setGmtCreate(new Date());
            file.setGmtModified(new Date());
            file.setBusinessId(businessId);
            if(businessType!=null&&businessType.length()!=0) {
                file.setBusinessType(businessType);
            }
            if(fileClass!=null&&fileClass.length()!=0){
                file.setFileClass(fileClass);
            }
            fileMapper.insertSelective(file);
            result=file;

        return result;
    }
/**
 *  创建人:王增立
 *  备注: 获取文件根据文件类型
 *  时间: 2019/4/26 14:59
 *  参数: 
 */
    public List<File> getFiles(String businessId, String businessType,String fileClass){
        Example example=new Example(File.class);
        Example.Criteria criteria= example.createCriteria();
        criteria.andEqualTo("businessId",businessId);
        criteria.andEqualTo("businessType",businessType);
        criteria.andEqualTo("deleted",false);
        if(!isBlank(fileClass)&& fileClass!=""){
            criteria.andEqualTo("fileClass",fileClass);
        }
        example.orderBy("gmtCreate");
        List<File> files= fileMapper.selectByExample(example);
        for(int i = 0 ; i < files.size() ; i++) {
            files.get(i).setResourceName(files.get(i).getFileName());
        }
        return files;
    }
    /**
     *  创建人:王增立
     *  备注: 获取文件
     *  时间: 2019/4/26 14:59
     *  参数:
     */
    public List<File> getFiles(String businessId, String businessType){
        return  getFiles(businessId,businessType,"");
    }
}
